#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------
class Item:
	def __init__(self,valor,posx,posy,img):
		self.valor = valor
		self.selected = False
		self.correcto = False
		self.img_up = utils.load_image('images/c3_12_'+img+'C.jpg',True)
		self.img_down = utils.load_image('images/c3_12_'+img+'A.jpg',True)
		self.img_lock = utils.load_image('images/c3_12_'+img+'B.jpg',True)
		self.rect = self.img_up.get_rect()
		self.rect.centerx = posx
		self.rect.centery = posy
		self.sonido_select = pygame.mixer.Sound("sounds/click.wav")
		self.sonido_select.set_volume(0.2)
        
class Linea:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textotls(texto, posx,posy,18,(0,0,0))


class Linea2:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textotlb(texto, posx,posy,20,(50,50,255))


# ---------------------------------------------------------------------
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo_3.jpg')
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()
    
    
    clase, clase_rect = utils.texto_clase("Clase 3", 740*utils.RES, 30*utils.RES)
           
    #titulo, titulo_rect = utils.texto_subtitulo_azul("MINIMIZAR LA GENERACIÓN DE BASURA", 400*utils.RES, 60*utils.RES)
     
    bloque1 = ( Linea('Emparejá los productos que decidiste NO USAR MÁS, con los MATERIALES que puedan', 370*utils.RES,70*utils.RES),
    Linea('extraerse de ellos en el proceso de reciclado y con los NUEVOS PRODUCTOS que podrían ', 380*utils.RES,90*utils.RES),
    Linea('fabricarse con esos materiales.', 178*utils.RES,110*utils.RES))    
    
    titulos = (Linea2('Objetos que decidí no usar más', 180*utils.RES,140*utils.RES),
    Linea2('Materiales', 420*utils.RES,140*utils.RES),
    Linea2('Nuevos productos', 620*utils.RES,140*utils.RES)
    )
    
    desechos = (Item(1,100,220,'1'),Item(2,200,280,'2'),Item(3,100,360,'3'),Item(4,200,420,'4'))
    materiales = (Item(1,400,220,'9'),Item(2,400,430,'12'),Item(3,400,290,'10'),Item(4,400,360,'11'))
    productos = (Item(1,700,360,'7'),Item(2,600,420,'8'),Item(3,600,280,'6'),Item(4,700,220,'5'))
    
    mensaje_final, mensaje_final_rect = utils.textotlb("¡Muy Bien! ¡Ahora ya sabemos como reciclar!", 400*utils.RES, 315*utils.RES,22,(255,0,0))
    
    sonido_correcto = pygame.mixer.Sound("sounds/harp.ogg")
    sonido_correcto.set_volume(0.2)
    
    while salir == 0:
    
    	# Pump GTK messages.sub
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				if btn_adelante.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 13
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 11					
					btn_atras.sonido.play()
				for item in desechos:
					if item.rect.collidepoint(pygame.mouse.get_pos()):
						for item2 in desechos:
							item2.selected = False
						if item.correcto == False:	
							item.selected = True
							item.sonido_select.play()
				for item in materiales:
					if item.rect.collidepoint(pygame.mouse.get_pos()):
						for item2 in materiales:
							item2.selected = False
						if item.correcto == False:	
							item.selected = True
							item.sonido_select.play()			
				for item in productos:
					if item.rect.collidepoint(pygame.mouse.get_pos()):
						for item2 in productos:
							item2.selected = False
						if item.correcto == False:	
							item.selected = True
							item.sonido_select.play()		
		terminado = True			
		#checkeo de emparejamientos
		for i in range(4):
			if desechos[i].selected and materiales[i].selected and productos[i].selected and desechos[i].correcto == False:
				desechos[i].correcto = True
				materiales[i].correcto = True
				productos[i].correcto = True
				sonido_correcto.play()
			if productos[i].correcto == False:
				terminado = False
		
		# Realiza la animacion del texto
		
		screen.blit(background_image, (0, 0))
		screen.blit(clase, clase_rect)
		if terminado:
			screen.blit(mensaje_final, mensaje_final_rect)
		for palabra in bloque1:
			screen.blit(palabra.text, palabra.rect)
		for palabra in titulos:
			screen.blit(palabra.text, palabra.rect)	
		for item in desechos:
			if item.correcto == False:
				if item.selected:
					screen.blit(item.img_down, item.rect)
				else:
					screen.blit(item.img_up, item.rect)					
		for item in productos:
			if item.correcto == False:
				if item.selected:
					screen.blit(item.img_down, item.rect)
				else:
					screen.blit(item.img_up, item.rect)					
		for item in materiales:
			if item.correcto == False:
				if item.selected:
					screen.blit(item.img_down, item.rect)
				else:
					screen.blit(item.img_up, item.rect)								
		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)
                	 
    return salir

# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
